Check correlation between Mn responsive and microbe responsive genes in ime course

library(tidyverse)
library(readxl)
library(edgeR)

get the Mn data

Mn <- read_csv("../output/Mn_deficiency.DEGs.all.anno.csv") %>%
  select(AGI, logFC, FDR) %>%
  filter(FDR < 0.05)
Missing column names filled in: 'X1' [1]Parsed with column specification:
cols(
  X1 = col_double(),
  AGI = col_character(),
  logFC = col_double(),
  logCPM = col_double(),
  LR = col_double(),
  PValue = col_double(),
  FDR = col_double(),
  symbol2 = col_character(),
  full_name = col_character()
)
Mn

Now get the microbe response data

load("../output/TimeCourseDGE_LRT.Rdata")
names(models)
[1] "day_time" "day"      "time"     "dge"      "lrt"      "DEG0.05" 
DEgenes <- models %>% 
  mutate(toptags = map(lrt, ~ topTags(.,n=Inf)), #pull the DE gene info out of each model
         toptags = map(toptags, ~ .$table), # get the table of DE info
         toptags = map(toptags, ~ rownames_to_column(., "transcript_ID"))) %>%
  unnest(toptags) %>%
  group_by(transcript_ID) %>%
  arrange(transcript_ID, FDR) %>% 
  select(day_time, transcript_ID, logFC, FDR)
DEgenes

Add Arabidopdis ID to each Brassica gene

First, get annotation

annotation <- read_csv("../../Brapa_microbes/Annotation/output/v3.0annotation/Brapa_V3.0_annotated.csv")
Missing column names filled in: 'X1' [1]Parsed with column specification:
cols(
  .default = col_double(),
  name = col_character(),
  chrom = col_character(),
  subject = col_character(),
  AGI = col_character(),
  At_symbol = col_character(),
  At_full_name = col_character(),
  At_gene_model_type = col_character(),
  At_short_description = col_character(),
  At_Curator_summary = col_character(),
  At_Computational_description = col_character()
)
See spec(...) for full column specifications.
annotation

now join the annotation

DEgenes <- annotation %>%
  select(name, AGI) %>%
  right_join(DEgenes, by=c("name" = "transcript_ID"))
DEgenes

now add in the microbe data

gene_compare <- DEgenes %>%
  inner_join(Mn, by = c("AGI"), suffix = c(".microbe", ".Mn"))
gene_compare
gene_compare <- gene_compare %>%
  group_by(day_time) %>%
  nest()
gene_compare
gene_compare <- gene_compare %>%
  mutate(cortest = map(data, ~ cor.test(.$logFC.microbe, .$logFC.Mn, method="spearman", exact=FALSE)))
gene_compare %>% mutate(glance = map(cortest, broom::glance)) %>% unnest(glance) %>%
  arrange(p.value) %>% select(day_time, estimate, p.value) 

Plot the most significant one

gene_compare %>%
  filter(day_time=="02-2_afternoon") %>%
  unnest(data) %>%
  ggplot(aes(x=logFC.Mn, y=logFC.microbe)) +
  geom_point(alpha=.2)

LS0tCnRpdGxlOiAiTW4gQW5hbHlzaXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCkNoZWNrIGNvcnJlbGF0aW9uIGJldHdlZW4gTW4gcmVzcG9uc2l2ZSBhbmQgbWljcm9iZSByZXNwb25zaXZlIGdlbmVzIGluIGltZSBjb3Vyc2UKCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShyZWFkeGwpCmxpYnJhcnkoZWRnZVIpCmBgYAoKZ2V0IHRoZSBNbiBkYXRhCmBgYHtyfQpNbiA8LSByZWFkX2NzdigiLi4vb3V0cHV0L01uX2RlZmljaWVuY3kuREVHcy5hbGwuYW5uby5jc3YiKSAlPiUKICBzZWxlY3QoQUdJLCBsb2dGQywgRkRSKSAlPiUKICBmaWx0ZXIoRkRSIDwgMC4wNSkKTW4KYGBgCgpOb3cgZ2V0IHRoZSBtaWNyb2JlIHJlc3BvbnNlIGRhdGEKYGBge3J9CmxvYWQoIi4uL291dHB1dC9UaW1lQ291cnNlREdFX0xSVC5SZGF0YSIpCmBgYAoKYGBge3J9Cm5hbWVzKG1vZGVscykKREVnZW5lcyA8LSBtb2RlbHMgJT4lIAogIG11dGF0ZSh0b3B0YWdzID0gbWFwKGxydCwgfiB0b3BUYWdzKC4sbj1JbmYpKSwgI3B1bGwgdGhlIERFIGdlbmUgaW5mbyBvdXQgb2YgZWFjaCBtb2RlbAogICAgICAgICB0b3B0YWdzID0gbWFwKHRvcHRhZ3MsIH4gLiR0YWJsZSksICMgZ2V0IHRoZSB0YWJsZSBvZiBERSBpbmZvCiAgICAgICAgIHRvcHRhZ3MgPSBtYXAodG9wdGFncywgfiByb3duYW1lc190b19jb2x1bW4oLiwgInRyYW5zY3JpcHRfSUQiKSkpICU+JQogIHVubmVzdCh0b3B0YWdzKSAlPiUKICBncm91cF9ieSh0cmFuc2NyaXB0X0lEKSAlPiUKICBhcnJhbmdlKHRyYW5zY3JpcHRfSUQsIEZEUikgJT4lIAogIHNlbGVjdChkYXlfdGltZSwgdHJhbnNjcmlwdF9JRCwgbG9nRkMsIEZEUikKREVnZW5lcwpgYGAKCkFkZCBBcmFiaWRvcGRpcyBJRCB0byBlYWNoIEJyYXNzaWNhIGdlbmUKCkZpcnN0LCBnZXQgYW5ub3RhdGlvbgpgYGB7cn0KYW5ub3RhdGlvbiA8LSByZWFkX2NzdigiLi4vLi4vQnJhcGFfbWljcm9iZXMvQW5ub3RhdGlvbi9vdXRwdXQvdjMuMGFubm90YXRpb24vQnJhcGFfVjMuMF9hbm5vdGF0ZWQuY3N2IikKYW5ub3RhdGlvbgpgYGAKCm5vdyBqb2luIHRoZSBhbm5vdGF0aW9uCmBgYHtyfQpERWdlbmVzIDwtIGFubm90YXRpb24gJT4lCiAgc2VsZWN0KG5hbWUsIEFHSSkgJT4lCiAgcmlnaHRfam9pbihERWdlbmVzLCBieT1jKCJuYW1lIiA9ICJ0cmFuc2NyaXB0X0lEIikpCkRFZ2VuZXMKYGBgCgpub3cgYWRkIGluIHRoZSBtaWNyb2JlIGRhdGEKCmBgYHtyfQpnZW5lX2NvbXBhcmUgPC0gREVnZW5lcyAlPiUKICBpbm5lcl9qb2luKE1uLCBieSA9IGMoIkFHSSIpLCBzdWZmaXggPSBjKCIubWljcm9iZSIsICIuTW4iKSkKZ2VuZV9jb21wYXJlCmBgYAoKYGBge3J9CmdlbmVfY29tcGFyZSA8LSBnZW5lX2NvbXBhcmUgJT4lCiAgZ3JvdXBfYnkoZGF5X3RpbWUpICU+JQogIG5lc3QoKQpnZW5lX2NvbXBhcmUKYGBgCgpgYGB7cn0KZ2VuZV9jb21wYXJlIDwtIGdlbmVfY29tcGFyZSAlPiUKICBtdXRhdGUoY29ydGVzdCA9IG1hcChkYXRhLCB+IGNvci50ZXN0KC4kbG9nRkMubWljcm9iZSwgLiRsb2dGQy5NbiwgbWV0aG9kPSJzcGVhcm1hbiIsIGV4YWN0PUZBTFNFKSkpCmBgYAoKYGBge3J9CmdlbmVfY29tcGFyZSAlPiUgbXV0YXRlKGdsYW5jZSA9IG1hcChjb3J0ZXN0LCBicm9vbTo6Z2xhbmNlKSkgJT4lIHVubmVzdChnbGFuY2UpICU+JQogIGFycmFuZ2UocC52YWx1ZSkgJT4lIHNlbGVjdChkYXlfdGltZSwgZXN0aW1hdGUsIHAudmFsdWUpIApgYGAKClBsb3QgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgb25lCgpgYGB7cn0KZ2VuZV9jb21wYXJlICU+JQogIGZpbHRlcihkYXlfdGltZT09IjAyLTJfYWZ0ZXJub29uIikgJT4lCiAgdW5uZXN0KGRhdGEpICU+JQogIGdncGxvdChhZXMoeD1sb2dGQy5NbiwgeT1sb2dGQy5taWNyb2JlKSkgKwogIGdlb21fcG9pbnQoYWxwaGE9LjIpCmBgYAoK